Scenario

Command Design Pattern
커멘드 디자인 패턴은 어떤 객체를 활용할 때, 직접 그 객체의 API를 호출하여 조작하는 대신
작업을 어떻게 하라고 명령을 보내는 방식을 제안한다.
Scenario
struct BankAccout{
int balance=0;
int overdraft_limit=-500;
void deposit(int amount){
balance+=amount;
cout<<"deposited "<<amount<<", balance is now "<<balance<<'\n';
}
void withdraw(int amount){
if(balance-amount>=overdraft_limit){
balance-=amount;
cout<<"withdrew "<<amount<<", balance is now "<<balance<<'\n';
}
}
};
위와 같이 이미 만들어져 있으며, 수정할 수 없는(라이브러리로 지원되는) 클래스가 있다고 하자
이 때 입출금 내역을 기록해야 하는 경우, 커맨드 디자인 패턴을 이용할 수 있다.